﻿//using System;
//using System.Collections.Generic;
//using System.ComponentModel;
//using System.Linq;
//using System.Net;
//using System.Web;
//using System.Web.Mvc;
//using Super.Entity;
//using Super.Framework.Common;
//using Super.Framework.EF;
//using Super.Framework.Common.Web;
//using Super.Mvc;
//using Super.Service;

//namespace Developer.Web.Areas.Admin.Controllers
//{
//    public class RoleAuthController : BaseController
//    {
//        //
//        // GET: /Admin/Auth/
//        [Description("授权管理")]
//        public ActionResult Index()
//        {
//            return View();
//        }

//        public ActionResult MenuList()
//        {
          

//            return View();
//        }

//        public ActionResult ActionList()
//        {
            
//            return View();
//        }



//        public JsonResult MenuRoleSet()
//        {
//            var roleId = Query.Value("roleId").ToInt();
//            var menuIds = Query.Value("roleMenu");

//            var role = SysInfo.DB.Role.Get(roleId);
//            var delmenus = role.MenuPermissionRole.ToList();
//            foreach (var item in delmenus)
//            {
//                SysInfo.DB.MenuPermissionRole.Remove(item);
//            }
//            SysInfo.DB.SaveChanges();

//            if (menuIds.IsNotNullOrEmpty())
//            {
//                var mids = menuIds.SplitList().Select(i => i.ToInt()).ToList();
//                foreach (var mid in mids)
//                {
//                    var mpr = new MenuPermissionRole();
//                    mpr.MenuPermissionId = mid;
//                    mpr.RoleId = roleId;
//                    SysInfo.DB.MenuPermissionRole.Add(mpr);
//                }

//                //菜单权限，同时授予最基础的操作权限--查看
//                var ms = SysInfo.DB.MenuPermission.Where(a => mids.Contains(a.Id) && a.ActionName.Contains("index")).Select(a => a.ControllerName).ToList();
//                var actions = SysInfo.DB.ActionPermission.Where(a => ms.Contains(a.ControllerName) && a.ActionName.Contains("index"));
//                var roleActions = role.ActionPermissionRole.Real().ToList();
//                foreach (var actionPermission in actions)
//                {
//                    if (roleActions.All(a => a.ActionPermissionId != actionPermission.Id))
//                    {
//                        var apr = new ActionPermissionRole();
//                        apr.ActionPermissionId = actionPermission.Id;
//                        apr.RoleId = roleId;
//                        SysInfo.DB.ActionPermissionRole.Add(apr);
//                    }
//                }


//                SysInfo.DB.SaveChanges();
//            }




//            return JsonBack.Tip(null, "menuBox");
//        }

//        public JsonResult RoleReset()
//        {
//            var roleId = Query.Value("roleId").ToInt();

//            var role = SysInfo.DB.Role.Get(roleId);
//            var aprs = role.ActionPermissionRole.ToList();
//            var mpr = role.MenuPermissionRole.ToList();
//            foreach (var item in aprs)
//            {
//                SysInfo.DB.ActionPermissionRole.Remove(item);
//            }

//            foreach (var item in mpr)
//            {
//                SysInfo.DB.MenuPermissionRole.Remove(item);
//            }

//            SysInfo.DB.SaveChanges();


//            return JsonBack.Tip(navTabId: "RoleAuthList");
//        }

//        public JsonResult ActionRoleSet()
//        {
//            var roleId = Query.Value("roleId").ToInt();
//            var actionIds = Query.Value("roleAction");

//            var role = SysInfo.DB.Role.Get(roleId);
//            var delmenus = role.ActionPermissionRole.ToList();
//            foreach (var item in delmenus)
//            {
//                SysInfo.DB.ActionPermissionRole.Remove(item);
//            }
//            SysInfo.DB.SaveChanges();

//            if (actionIds.IsNotNullOrEmpty())
//            {
//                var aids = actionIds.SplitList().Select(i => i.ToInt()).ToList();
//                foreach (var mid in aids)
//                {
//                    var apr = new ActionPermissionRole();
//                    apr.ActionPermissionId = mid;
//                    apr.RoleId = roleId;
//                    SysInfo.DB.ActionPermissionRole.Add(apr);
//                }
//                //操作授权，同时授予最基础的菜单权限--查看
//                var ms = SysInfo.DB.ActionPermission.Where(a => aids.Contains(a.Id)).Select(a => a.ControllerName).ToList();
//                var menus = SysInfo.DB.MenuPermission.Where(a => ms.Contains(a.ControllerName) && a.ActionName.Contains("index"));
//                var roleMenus = role.MenuPermissionRole.Real().ToList();
//                foreach (var menuPermission in menus)
//                {
//                    if (roleMenus.All(a => a.MenuPermissionId != menuPermission.Id))
//                    {
//                        var apr = new MenuPermissionRole();
//                        apr.MenuPermissionId = menuPermission.Id;
//                        apr.RoleId = roleId;
//                        SysInfo.DB.MenuPermissionRole.Add(apr);
//                    }
//                }

//                //操作授权，同时授予最基础的操作权限--查看
//                var cs = SysInfo.DB.ActionPermission.Where(a => aids.Contains(a.Id)).Select(a=>a.ControllerName).ToList();
//                var actions =
//                    SysInfo.DB.ActionPermission.Where(a => cs.Contains(a.ControllerName) && a.ActionName == "index")
//                           .ToList();

//                var roleActions = role.ActionPermissionRole.Real().ToList();
//                foreach (var actionPermission in actions)
//                {
//                    if (roleActions.All(a => a.ActionPermissionId != actionPermission.Id))
//                    {
//                        var apr = new ActionPermissionRole();
//                        apr.ActionPermissionId = actionPermission.Id;
//                        apr.RoleId = roleId;
//                        SysInfo.DB.ActionPermissionRole.Add(apr);
//                    }
//                }

//                SysInfo.DB.SaveChanges();
//            }


//            return JsonBack.Tip(navTabId: "actionBox");
//        }
//    }
//}
